package com.zsk.shop.common.utils;

import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.regex.Pattern;

/**
 * 正则表达式校验工具类
 *
 * @author zhangqiu
 * @version $Id: RegexCheckUtils.java, v 0.1 2017年9月26日 下午8:44:28 zhangqiu Exp $
 */
public class RegexCheckUtils {

    private static final Logger logger = LoggerFactory.getLogger(RegexCheckUtils.class);

    /**
     * 正则表达式：验证手机号
     */
    public static final String REGEX_MOBILE = "^(13[0-9]|14[0-9]|15[0-9]|16[0-9]|17[0-9]|18[0-9]|19[0-9])\\d{8}$";

    /**
     * 是否是手机号码
     *
     * @param phone
     * @return false-是手机号 true-不是手机号
     */
    public static boolean isNotMobile(String phone) {
        if (StringUtils.isBlank(phone)) {
            return Boolean.TRUE;
        }
        if (Pattern.matches(REGEX_MOBILE, phone)) {
            return Boolean.FALSE;
        }
        return Boolean.TRUE;
    }

    public static final String PWD_REGEX_RULE = "^[a-z0-9A-Z]+$";

    /**
     * 是否符合平台密码规则
     * 密码规则：密码长度6到20位，支持数字/大小写字母,不允许有空格、标点符号
     *
     * @param pwd
     * @return false-符合要求 true-不符合要求
     */
    public static Boolean isNotFitPwdRule(String pwd) {
        if (pwd.length() < 6 || pwd.length() > 20) {
            return Boolean.TRUE;
        }
        if (Pattern.matches(PWD_REGEX_RULE, pwd)) {
            return Boolean.FALSE;
        } else {
            return Boolean.TRUE;
        }
    }

    public static final String REGEX_EMAIL = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$";

    /**
     * 是否符合邮箱规则
     *
     * @param email
     * @return false-是邮箱 true-不是邮箱
     */
    public static boolean isNotEmail(String email) {
        if (StringUtils.isBlank(email)) {
            return Boolean.TRUE;
        }
        if (Pattern.matches(REGEX_EMAIL, email)) {
            return Boolean.FALSE;
        }
        return Boolean.TRUE;
    }

    public static void main(String[] args) {
        String a = "";
        System.out.println(isNotEmail(a));
        System.out.println(isNotFitPwdRule(a));
        System.out.println(isNotMobile(a));
    }
}
